package array;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

/**
 * @author lj
 * @date 2021/12/27 16:37
 * @email milolj@foxmail.com
 */
public class LeetCode_array1 {
    /**
     * 给你一个有序数组 nums ，请你 原地 删除重复出现的元素，使每个元素 只出现一次 ，返回删除后数组的新长度。
     *
     * 不要使用额外的数组空间，你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
     *
     * 作者：力扣 (LeetCode)
     * 链接：https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2gy9m/
     * 来源：力扣（LeetCode）
     * 著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
     */
    public static void main(String[] args) {
        int []array1 = new int[]{1,1,2,2,3,3,4,4,5,5,6,6,7,7};
        LeetCode_array1 leetCode_array1 = new LeetCode_array1();
        int duplicates = leetCode_array1.removeDuplicates(array1);
        System.out.println("长度:"+duplicates);
    }
    public int removeDuplicates(int[] nums) {
       /* Map<Object, Integer> map = new HashMap<>();
        int lengthArr = 0;
        for (int i = 0; i < nums.length - 1; i++) {
            if (map.get(nums[i]) != null) {
                if (nums[i] == nums[i+1]) {
                    for (int j = i; j < nums.length - 1; j++) {
                        nums[j] = nums[j+1];
                        i--;
                    }
                }
            } else {
                map.put(nums[i],1);
                map.put("length",++lengthArr);
            }
        }
        System.out.println(Arrays.toString(nums));
        return map.get("length");*/

        int i=0,j=1;
        while(j<nums.length){
            if(nums[i] == nums[j]){
                j++;
            }else{
                nums[++i] = nums[j];
            }
        }
        System.out.println(Arrays.toString(nums));
        return i+1;
    }

}
